package com.ruoyi.mapper;

import com.ruoyi.domain.DailyReport;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface DailyReportMapper {

    /**
     * 查询管理员的日报（包括所有用户的已提交状态和管理员自己的草稿）
     *
     * @param workerName 员工姓名（模糊查询）
     * @param userId 当前管理员的用户 ID（用于查询管理员自己的草稿）
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 日报列表
     */
    List<DailyReport> getAdminReports(
            @Param("workerName") String workerName,
            @Param("userId") Long userId,
            @Param("startDate") String startDate,
            @Param("endDate") String endDate
    );

    /**
     * 查询普通用户的日报（草稿和已提交状态）
     *
     * @param userId 当前用户的 ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 日报列表
     */
    List<DailyReport> getUserReports(
            @Param("userId") Long userId,
            @Param("startDate") String startDate,
            @Param("endDate") String endDate
    );

    /**
     * 新增日报
     *
     * @param report 日报对象
     */
    void insertReport(DailyReport report);

    /**
     * 更新日报
     *
     * @param report 日报对象
     */
    void updateReport(@Param("report") DailyReport report);

    /**
     * 删除日报
     *
     * @param id 日报 ID
     */
    void deleteReport(@Param("id") Long id);

    /**
     * 查询单条日报详情
     *
     * @param id 日报 ID
     * @return 日报对象
     */
    DailyReport getReportDetails(@Param("id") Long id);
}
